﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="Toiming", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(Toiming))]
    public class ToimingSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IToiming clazz;
        
        public ToimingSerializer(IToiming clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.Nimetus!=null) {
                Writer.WriteStartElement("Nimetus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Nimetus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tegevusekohad!=null) {
                Writer.WriteStartElement("Tegevusekohad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Aadress", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Tegevusekohad.Count);
                for (int x = 0; ((clazz.Tegevusekohad != null) 
                            && (x < clazz.Tegevusekohad.Count)); x = (x + 1)) {
                    if (clazz.Tegevusekohad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaTegevusekohad = this.GetMetaData(clazz.Tegevusekohad[x]);
                        Writer.WriteTypeAttribute(metaTegevusekohad.TypeQualifiedName.Namespace, metaTegevusekohad.TypeQualifiedName.Name);
                        metaTegevusekohad.NewSerializer(clazz.Tegevusekohad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AlaLiikKL!=null) {
                Writer.WriteStartElement("AlaLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AlaLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AlgusKP!=null) {
                Writer.WriteStartElement("AlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.AlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Alustaja!=null) {
                Writer.WriteStartElement("Alustaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Alustaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.StaatusKP!=null) {
                Writer.WriteStartElement("StaatusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.StaatusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Alus!=null) {
                Writer.WriteStartElement("Alus");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("SeaduseSate", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Alus.Count);
                for (int x = 0; ((clazz.Alus != null) 
                            && (x < clazz.Alus.Count)); x = (x + 1)) {
                    if (clazz.Alus[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAlus = this.GetMetaData(clazz.Alus[x]);
                        Writer.WriteTypeAttribute(metaAlus.TypeQualifiedName.Namespace, metaAlus.TypeQualifiedName.Name);
                        metaAlus.NewSerializer(clazz.Alus[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AluseTapsustusKL!=null) {
                Writer.WriteStartElement("AluseTapsustusKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.AluseTapsustusKL.Count);
                for (int x = 0; ((clazz.AluseTapsustusKL != null) 
                            && (x < clazz.AluseTapsustusKL.Count)); x = (x + 1)) {
                    if (clazz.AluseTapsustusKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AluseTapsustusKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AvalikustatudFail!=null) {
                Writer.WriteStartElement("AvalikustatudFail");
                global::Xtee.Core.SerializationMetadata metaAvalikustatudFail = this.GetMetaData(clazz.AvalikustatudFail);
                Writer.WriteTypeAttribute(metaAvalikustatudFail.TypeQualifiedName.Namespace, metaAvalikustatudFail.TypeQualifiedName.Name);
                metaAvalikustatudFail.NewSerializer(clazz.AvalikustatudFail).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Objektid!=null) {
                Writer.WriteStartElement("Objektid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Objektid.Count);
                for (int x = 0; ((clazz.Objektid != null) 
                            && (x < clazz.Objektid.Count)); x = (x + 1)) {
                    if (clazz.Objektid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaObjektid = this.GetMetaData(clazz.Objektid[x]);
                        Writer.WriteTypeAttribute(metaObjektid.TypeQualifiedName.Namespace, metaObjektid.TypeQualifiedName.Name);
                        metaObjektid.NewSerializer(clazz.Objektid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Faabula!=null) {
                Writer.WriteStartElement("Faabula");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Faabula))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KoostamiseKoht!=null) {
                Writer.WriteStartElement("KoostamiseKoht");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.KoostamiseKoht))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Korraldused!=null) {
                Writer.WriteStartElement("Korraldused");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Korraldused))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LiikKL!=null) {
                Writer.WriteStartElement("LiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LoppKP!=null) {
                Writer.WriteStartElement("LoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Lopetaja!=null) {
                Writer.WriteStartElement("Lopetaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Lopetaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Markused!=null) {
                Writer.WriteStartElement("Markused");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Markused))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Menetlus!=null) {
                Writer.WriteStartElement("Menetlus");
                global::Xtee.Core.SerializationMetadata metaMenetlus = this.GetMetaData(clazz.Menetlus);
                Writer.WriteTypeAttribute(metaMenetlus.TypeQualifiedName.Namespace, metaMenetlus.TypeQualifiedName.Name);
                metaMenetlus.NewSerializer(clazz.Menetlus).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.ObjektID!=null) {
                Writer.WriteStartElement("ObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKL!=null) {
                Writer.WriteStartElement("SeisundKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SeisundKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeisundKP!=null) {
                Writer.WriteStartElement("SeisundKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SeisundKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sisu!=null) {
                Writer.WriteStartElement("Sisu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseAlgusKP!=null) {
                Writer.WriteStartElement("LabiviimiseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LabiviimiseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseLoppKP!=null) {
                Writer.WriteStartElement("LabiviimiseLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LabiviimiseLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguNR!=null) {
                Writer.WriteStartElement("ToiminguNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Toiminguosalised!=null) {
                Writer.WriteStartElement("Toiminguosalised");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Toiminguosalised.Count);
                for (int x = 0; ((clazz.Toiminguosalised != null) 
                            && (x < clazz.Toiminguosalised.Count)); x = (x + 1)) {
                    if (clazz.Toiminguosalised[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToiminguosalised = this.GetMetaData(clazz.Toiminguosalised[x]);
                        Writer.WriteTypeAttribute(metaToiminguosalised.TypeQualifiedName.Namespace, metaToiminguosalised.TypeQualifiedName.Name);
                        metaToiminguosalised.NewSerializer(clazz.Toiminguosalised[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguMenetlejad!=null) {
                Writer.WriteStartElement("ToiminguMenetlejad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ToiminguOsaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ToiminguMenetlejad.Count);
                for (int x = 0; ((clazz.ToiminguMenetlejad != null) 
                            && (x < clazz.ToiminguMenetlejad.Count)); x = (x + 1)) {
                    if (clazz.ToiminguMenetlejad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToiminguMenetlejad = this.GetMetaData(clazz.ToiminguMenetlejad[x]);
                        Writer.WriteTypeAttribute(metaToiminguMenetlejad.TypeQualifiedName.Namespace, metaToiminguMenetlejad.TypeQualifiedName.Name);
                        metaToiminguMenetlejad.NewSerializer(clazz.ToiminguMenetlejad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.VerAlgusKP!=null) {
                Writer.WriteStartElement("VerAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VerAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VerLoppKP!=null) {
                Writer.WriteStartElement("VerLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.VerLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VersID!=null) {
                Writer.WriteStartElement("VersID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.VersID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ObjektideLoetelu!=null) {
                Writer.WriteStartElement("ObjektideLoetelu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ObjektideLoetelu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Pohjendus!=null) {
                Writer.WriteStartElement("Pohjendus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Pohjendus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OlustikuKirjeldus!=null) {
                Writer.WriteStartElement("OlustikuKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OlustikuKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EdasilykkamatusePohjendus!=null) {
                Writer.WriteStartElement("EdasilykkamatusePohjendus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.EdasilykkamatusePohjendus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Failid!=null) {
                Writer.WriteStartElement("Failid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Fail", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Failid.Count);
                for (int x = 0; ((clazz.Failid != null) 
                            && (x < clazz.Failid.Count)); x = (x + 1)) {
                    if (clazz.Failid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaFailid = this.GetMetaData(clazz.Failid[x]);
                        Writer.WriteTypeAttribute(metaFailid.TypeQualifiedName.Namespace, metaFailid.TypeQualifiedName.Name);
                        metaFailid.NewSerializer(clazz.Failid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AlusToimingud!=null) {
                Writer.WriteStartElement("AlusToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.AlusToimingud.Count);
                for (int x = 0; ((clazz.AlusToimingud != null) 
                            && (x < clazz.AlusToimingud.Count)); x = (x + 1)) {
                    if (clazz.AlusToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaAlusToimingud = this.GetMetaData(clazz.AlusToimingud[x]);
                        Writer.WriteTypeAttribute(metaAlusToimingud.TypeQualifiedName.Namespace, metaAlusToimingud.TypeQualifiedName.Name);
                        metaAlusToimingud.NewSerializer(clazz.AlusToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.TeavitamiseKirjeldus!=null) {
                Writer.WriteStartElement("TeavitamiseKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TeavitamiseKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Lisad!=null) {
                Writer.WriteStartElement("Lisad");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Lisad))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TehnikavahenditeLoetelu!=null) {
                Writer.WriteStartElement("TehnikavahenditeLoetelu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TehnikavahenditeLoetelu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Kulud!=null) {
                Writer.WriteStartElement("Kulud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Kulu", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Kulud.Count);
                for (int x = 0; ((clazz.Kulud != null) 
                            && (x < clazz.Kulud.Count)); x = (x + 1)) {
                    if (clazz.Kulud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaKulud = this.GetMetaData(clazz.Kulud[x]);
                        Writer.WriteTypeAttribute(metaKulud.TypeQualifiedName.Namespace, metaKulud.TypeQualifiedName.Name);
                        metaKulud.NewSerializer(clazz.Kulud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.UusMenetlevAsutus!=null) {
                Writer.WriteStartElement("UusMenetlevAsutus");
                global::Xtee.Core.SerializationMetadata metaUusMenetlevAsutus = this.GetMetaData(clazz.UusMenetlevAsutus);
                Writer.WriteTypeAttribute(metaUusMenetlevAsutus.TypeQualifiedName.Namespace, metaUusMenetlevAsutus.TypeQualifiedName.Name);
                metaUusMenetlevAsutus.NewSerializer(clazz.UusMenetlevAsutus).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.YhendatavadEraldatavadAsjad!=null) {
                Writer.WriteStartElement("YhendatavadEraldatavadAsjad");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Menetlus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.YhendatavadEraldatavadAsjad.Count);
                for (int x = 0; ((clazz.YhendatavadEraldatavadAsjad != null) 
                            && (x < clazz.YhendatavadEraldatavadAsjad.Count)); x = (x + 1)) {
                    if (clazz.YhendatavadEraldatavadAsjad[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaYhendatavadEraldatavadAsjad = this.GetMetaData(clazz.YhendatavadEraldatavadAsjad[x]);
                        Writer.WriteTypeAttribute(metaYhendatavadEraldatavadAsjad.TypeQualifiedName.Namespace, metaYhendatavadEraldatavadAsjad.TypeQualifiedName.Name);
                        metaYhendatavadEraldatavadAsjad.NewSerializer(clazz.YhendatavadEraldatavadAsjad[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MenetlusPost!=null) {
                Writer.WriteStartElement("MenetlusPost");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("MenetlusPost", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MenetlusPost.Count);
                for (int x = 0; ((clazz.MenetlusPost != null) 
                            && (x < clazz.MenetlusPost.Count)); x = (x + 1)) {
                    if (clazz.MenetlusPost[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMenetlusPost = this.GetMetaData(clazz.MenetlusPost[x]);
                        Writer.WriteTypeAttribute(metaMenetlusPost.TypeQualifiedName.Namespace, metaMenetlusPost.TypeQualifiedName.Name);
                        metaMenetlusPost.NewSerializer(clazz.MenetlusPost[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Syyteosyndmused!=null) {
                Writer.WriteStartElement("Syyteosyndmused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Syyteosyndmused.Count);
                for (int x = 0; ((clazz.Syyteosyndmused != null) 
                            && (x < clazz.Syyteosyndmused.Count)); x = (x + 1)) {
                    if (clazz.Syyteosyndmused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSyyteosyndmused = this.GetMetaData(clazz.Syyteosyndmused[x]);
                        Writer.WriteTypeAttribute(metaSyyteosyndmused.TypeQualifiedName.Namespace, metaSyyteosyndmused.TypeQualifiedName.Name);
                        metaSyyteosyndmused.NewSerializer(clazz.Syyteosyndmused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguosaliseKontaktid!=null) {
                Writer.WriteStartElement("ToiminguosaliseKontaktid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Kontakt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.ToiminguosaliseKontaktid.Count);
                for (int x = 0; ((clazz.ToiminguosaliseKontaktid != null) 
                            && (x < clazz.ToiminguosaliseKontaktid.Count)); x = (x + 1)) {
                    if (clazz.ToiminguosaliseKontaktid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaToiminguosaliseKontaktid = this.GetMetaData(clazz.ToiminguosaliseKontaktid[x]);
                        Writer.WriteTypeAttribute(metaToiminguosaliseKontaktid.TypeQualifiedName.Namespace, metaToiminguosaliseKontaktid.TypeQualifiedName.Name);
                        metaToiminguosaliseKontaktid.NewSerializer(clazz.ToiminguosaliseKontaktid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.StaatusKL!=null) {
                Writer.WriteStartElement("StaatusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.StaatusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SeotudToimingud!=null) {
                Writer.WriteStartElement("SeotudToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SeotudToimingud.Count);
                for (int x = 0; ((clazz.SeotudToimingud != null) 
                            && (x < clazz.SeotudToimingud.Count)); x = (x + 1)) {
                    if (clazz.SeotudToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSeotudToimingud = this.GetMetaData(clazz.SeotudToimingud[x]);
                        Writer.WriteTypeAttribute(metaSeotudToimingud.TypeQualifiedName.Namespace, metaSeotudToimingud.TypeQualifiedName.Name);
                        metaSeotudToimingud.NewSerializer(clazz.SeotudToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Nouded!=null) {
                Writer.WriteStartElement("Nouded");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Noue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Nouded.Count);
                for (int x = 0; ((clazz.Nouded != null) 
                            && (x < clazz.Nouded.Count)); x = (x + 1)) {
                    if (clazz.Nouded[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaNouded = this.GetMetaData(clazz.Nouded[x]);
                        Writer.WriteTypeAttribute(metaNouded.TypeQualifiedName.Namespace, metaNouded.TypeQualifiedName.Name);
                        metaNouded.NewSerializer(clazz.Nouded[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.StaatuseMargeKL!=null) {
                Writer.WriteStartElement("StaatuseMargeKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("long", "http://www.w3.org/2001/XMLSchema", clazz.StaatuseMargeKL.Count);
                for (int x = 0; ((clazz.StaatuseMargeKL != null) 
                            && (x < clazz.StaatuseMargeKL.Count)); x = (x + 1)) {
                    if (clazz.StaatuseMargeKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                        Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.StaatuseMargeKL[x]))).ToString());
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SeisundidKL!=null) {
                Writer.WriteStartElement("SeisundidKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SeisundidKL.Count);
                for (int x = 0; ((clazz.SeisundidKL != null) 
                            && (x < clazz.SeisundidKL.Count)); x = (x + 1)) {
                    if (clazz.SeisundidKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSeisundidKL = this.GetMetaData(clazz.SeisundidKL[x]);
                        Writer.WriteTypeAttribute(metaSeisundidKL.TypeQualifiedName.Namespace, metaSeisundidKL.TypeQualifiedName.Name);
                        metaSeisundidKL.NewSerializer(clazz.SeisundidKL[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.StaatusedKL!=null) {
                Writer.WriteStartElement("StaatusedKL");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.StaatusedKL.Count);
                for (int x = 0; ((clazz.StaatusedKL != null) 
                            && (x < clazz.StaatusedKL.Count)); x = (x + 1)) {
                    if (clazz.StaatusedKL[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaStaatusedKL = this.GetMetaData(clazz.StaatusedKL[x]);
                        Writer.WriteTypeAttribute(metaStaatusedKL.TypeQualifiedName.Namespace, metaStaatusedKL.TypeQualifiedName.Name);
                        metaStaatusedKL.NewSerializer(clazz.StaatusedKL[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.AlaLiigiTapsustusKL!=null) {
                Writer.WriteStartElement("AlaLiigiTapsustusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AlaLiigiTapsustusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KorduvuseMargeKL!=null) {
                Writer.WriteStartElement("KorduvuseMargeKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.KorduvuseMargeKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LabiviimiseVormKL!=null) {
                Writer.WriteStartElement("LabiviimiseVormKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LabiviimiseVormKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TahtaegKP!=null) {
                Writer.WriteStartElement("TahtaegKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.TahtaegKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.JarjekorraNR!=null) {
                Writer.WriteStartElement("JarjekorraNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.JarjekorraNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahenduseLiikKL!=null) {
                Writer.WriteStartElement("LahenduseLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LahenduseLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseTaseKL!=null) {
                Writer.WriteStartElement("SalastatuseTaseKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SalastatuseTaseKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PohiFail!=null) {
                Writer.WriteStartElement("PohiFail");
                global::Xtee.Core.SerializationMetadata metaPohiFail = this.GetMetaData(clazz.PohiFail);
                Writer.WriteTypeAttribute(metaPohiFail.TypeQualifiedName.Namespace, metaPohiFail.TypeQualifiedName.Name);
                metaPohiFail.NewSerializer(clazz.PohiFail).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.SihtMenetluseNR!=null) {
                Writer.WriteStartElement("SihtMenetluseNR");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.SihtMenetluseNR))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SihtMenetluseObjektID!=null) {
                Writer.WriteStartElement("SihtMenetluseObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SihtMenetluseObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KoostamiseKP!=null) {
                Writer.WriteStartElement("KoostamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.KoostamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ViimaseSalvestamiseAeg!=null) {
                Writer.WriteStartElement("ViimaseSalvestamiseAeg");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.ViimaseSalvestamiseAeg))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SisestamiseKP!=null) {
                Writer.WriteStartElement("SisestamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SisestamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sisestaja!=null) {
                Writer.WriteStartElement("Sisestaja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisestaja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MuutmiseKP!=null) {
                Writer.WriteStartElement("MuutmiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.MuutmiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Muutja!=null) {
                Writer.WriteStartElement("Muutja");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Muutja))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SulgemiseKP!=null) {
                Writer.WriteStartElement("SulgemiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SulgemiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguosalisedCSV!=null) {
                Writer.WriteStartElement("ToiminguosalisedCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguosalisedCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguMenetlejadCSV!=null) {
                Writer.WriteStartElement("ToiminguMenetlejadCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguMenetlejadCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.YhendatavadEraldatavadAsjadCSV!=null) {
                Writer.WriteStartElement("YhendatavadEraldatavadAsjadCSV");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.YhendatavadEraldatavadAsjadCSV))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KlientsysteemiID!=null) {
                Writer.WriteStartElement("KlientsysteemiID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.KlientsysteemiID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToimingugaSeotudSumma!=null) {
                Writer.WriteStartElement("ToimingugaSeotudSumma");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "decimal");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDecimal(((decimal)(clazz.ToimingugaSeotudSumma))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToimingugaSeotudSummaValuutaKL!=null) {
                Writer.WriteStartElement("ToimingugaSeotudSummaValuutaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ToimingugaSeotudSummaValuutaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PiirkondKL!=null) {
                Writer.WriteStartElement("PiirkondKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.PiirkondKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.VoibMakstaPangalingiga!=null) {
                Writer.WriteStartElement("VoibMakstaPangalingiga");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.VoibMakstaPangalingiga))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Resolutsioon!=null) {
                Writer.WriteStartElement("Resolutsioon");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Resolutsioon))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RiigiOigusabi!=null) {
                Writer.WriteStartElement("RiigiOigusabi");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("RiigiOigusabi", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.RiigiOigusabi.Count);
                for (int x = 0; ((clazz.RiigiOigusabi != null) 
                            && (x < clazz.RiigiOigusabi.Count)); x = (x + 1)) {
                    if (clazz.RiigiOigusabi[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaRiigiOigusabi = this.GetMetaData(clazz.RiigiOigusabi[x]);
                        Writer.WriteTypeAttribute(metaRiigiOigusabi.TypeQualifiedName.Namespace, metaRiigiOigusabi.TypeQualifiedName.Name);
                        metaRiigiOigusabi.NewSerializer(clazz.RiigiOigusabi[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.RoaLiikKL!=null) {
                Writer.WriteStartElement("RoaLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.RoaLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.RiigioigusabiAndmiseViisKL!=null) {
                Writer.WriteStartElement("RiigioigusabiAndmiseViisKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.RiigioigusabiAndmiseViisKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ToiminguVastutavKontakt!=null) {
                Writer.WriteStartElement("ToiminguVastutavKontakt");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.ToiminguVastutavKontakt))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EdastadaRaamatupidamisse!=null) {
                Writer.WriteStartElement("EdastadaRaamatupidamisse");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EdastadaRaamatupidamisse))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AsjaajamiseNumber!=null) {
                Writer.WriteStartElement("AsjaajamiseNumber");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.AsjaajamiseNumber))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.DokumendiPostitamiseKP!=null) {
                Writer.WriteStartElement("DokumendiPostitamiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.DokumendiPostitamiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.DokumendiSaabumiseKP!=null) {
                Writer.WriteStartElement("DokumendiSaabumiseKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.DokumendiSaabumiseKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EdastamiseViisKL!=null) {
                Writer.WriteStartElement("EdastamiseViisKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.EdastamiseViisKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.HagiTagamineEsialgneOiguskaitse!=null) {
                Writer.WriteStartElement("HagiTagamineEsialgneOiguskaitse");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.HagiTagamineEsialgneOiguskaitse))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OigusabiMenetlusabiSaamine!=null) {
                Writer.WriteStartElement("OigusabiMenetlusabiSaamine");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.OigusabiMenetlusabiSaamine))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseAlusKL!=null) {
                Writer.WriteStartElement("SalastatuseAlusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SalastatuseAlusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseAlusKirjeldus!=null) {
                Writer.WriteStartElement("SalastatuseAlusKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.SalastatuseAlusKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseAlgusKP!=null) {
                Writer.WriteStartElement("SalastatuseAlgusKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SalastatuseAlgusKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SalastatuseLoppKP!=null) {
                Writer.WriteStartElement("SalastatuseLoppKP");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.SalastatuseLoppKP))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.AllikaksOlevKlientSysteemKL!=null) {
                Writer.WriteStartElement("AllikaksOlevKlientSysteemKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.AllikaksOlevKlientSysteemKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LisaToimingud!=null) {
                Writer.WriteStartElement("LisaToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.LisaToimingud.Count);
                for (int x = 0; ((clazz.LisaToimingud != null) 
                            && (x < clazz.LisaToimingud.Count)); x = (x + 1)) {
                    if (clazz.LisaToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaLisaToimingud = this.GetMetaData(clazz.LisaToimingud[x]);
                        Writer.WriteTypeAttribute(metaLisaToimingud.TypeQualifiedName.Namespace, metaLisaToimingud.TypeQualifiedName.Name);
                        metaLisaToimingud.NewSerializer(clazz.LisaToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.PohiToimingud!=null) {
                Writer.WriteStartElement("PohiToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.PohiToimingud.Count);
                for (int x = 0; ((clazz.PohiToimingud != null) 
                            && (x < clazz.PohiToimingud.Count)); x = (x + 1)) {
                    if (clazz.PohiToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaPohiToimingud = this.GetMetaData(clazz.PohiToimingud[x]);
                        Writer.WriteTypeAttribute(metaPohiToimingud.TypeQualifiedName.Namespace, metaPohiToimingud.TypeQualifiedName.Name);
                        metaPohiToimingud.NewSerializer(clazz.PohiToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.Hoiatused!=null) {
                Writer.WriteStartElement("Hoiatused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Hoiatused.Count);
                for (int x = 0; ((clazz.Hoiatused != null) 
                            && (x < clazz.Hoiatused.Count)); x = (x + 1)) {
                    if (clazz.Hoiatused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData(clazz.Hoiatused[x]);
                        Writer.WriteTypeAttribute(metaHoiatused.TypeQualifiedName.Namespace, metaHoiatused.TypeQualifiedName.Name);
                        metaHoiatused.NewSerializer(clazz.Hoiatused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.SisulisedLahendused!=null) {
                Writer.WriteStartElement("SisulisedLahendused");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("MenetluseSisulineLiigitus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.SisulisedLahendused.Count);
                for (int x = 0; ((clazz.SisulisedLahendused != null) 
                            && (x < clazz.SisulisedLahendused.Count)); x = (x + 1)) {
                    if (clazz.SisulisedLahendused[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaSisulisedLahendused = this.GetMetaData(clazz.SisulisedLahendused[x]);
                        Writer.WriteTypeAttribute(metaSisulisedLahendused.TypeQualifiedName.Namespace, metaSisulisedLahendused.TypeQualifiedName.Name);
                        metaSisulisedLahendused.NewSerializer(clazz.SisulisedLahendused[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MakseRekvisiidid!=null) {
                Writer.WriteStartElement("MakseRekvisiidid");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("MakseRekvisiidid", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MakseRekvisiidid.Count);
                for (int x = 0; ((clazz.MakseRekvisiidid != null) 
                            && (x < clazz.MakseRekvisiidid.Count)); x = (x + 1)) {
                    if (clazz.MakseRekvisiidid[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMakseRekvisiidid = this.GetMetaData(clazz.MakseRekvisiidid[x]);
                        Writer.WriteTypeAttribute(metaMakseRekvisiidid.TypeQualifiedName.Namespace, metaMakseRekvisiidid.TypeQualifiedName.Name);
                        metaMakseRekvisiidid.NewSerializer(clazz.MakseRekvisiidid[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MojutatavaToiminguLahendusKL!=null) {
                Writer.WriteStartElement("MojutatavaToiminguLahendusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MojutatavaToiminguLahendusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MojutavaToiminguLahendusKL!=null) {
                Writer.WriteStartElement("MojutavaToiminguLahendusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MojutavaToiminguLahendusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MojutavadToimingud!=null) {
                Writer.WriteStartElement("MojutavadToimingud");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.MojutavadToimingud.Count);
                for (int x = 0; ((clazz.MojutavadToimingud != null) 
                            && (x < clazz.MojutavadToimingud.Count)); x = (x + 1)) {
                    if (clazz.MojutavadToimingud[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaMojutavadToimingud = this.GetMetaData(clazz.MojutavadToimingud[x]);
                        Writer.WriteTypeAttribute(metaMojutavadToimingud.TypeQualifiedName.Namespace, metaMojutavadToimingud.TypeQualifiedName.Name);
                        metaMojutavadToimingud.NewSerializer(clazz.MojutavadToimingud[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MarksonaStaatusKL!=null) {
                Writer.WriteStartElement("MarksonaStaatusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.MarksonaStaatusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sissejuhatus!=null) {
                Writer.WriteStartElement("Sissejuhatus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sissejuhatus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SissenoutavusKL!=null) {
                Writer.WriteStartElement("SissenoutavusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SissenoutavusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EdasiKaebusOigusestLoobutud!=null) {
                Writer.WriteStartElement("EdasiKaebusOigusestLoobutud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EdasiKaebusOigusestLoobutud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KobaraTunnus!=null) {
                Writer.WriteStartElement("KobaraTunnus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.KobaraTunnus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KobaraLiikmed!=null) {
                Writer.WriteStartElement("KobaraLiikmed");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.KobaraLiikmed.Count);
                for (int x = 0; ((clazz.KobaraLiikmed != null) 
                            && (x < clazz.KobaraLiikmed.Count)); x = (x + 1)) {
                    if (clazz.KobaraLiikmed[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaKobaraLiikmed = this.GetMetaData(clazz.KobaraLiikmed[x]);
                        Writer.WriteTypeAttribute(metaKobaraLiikmed.TypeQualifiedName.Namespace, metaKobaraLiikmed.TypeQualifiedName.Name);
                        metaKobaraLiikmed.NewSerializer(clazz.KobaraLiikmed[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.LahendiKuulutamiseAeg!=null) {
                Writer.WriteStartElement("LahendiKuulutamiseAeg");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "dateTime");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDateTime(((System.DateTime)(clazz.LahendiKuulutamiseAeg))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tagasimaksed!=null) {
                Writer.WriteStartElement("Tagasimaksed");
                Writer.WriteTypeAttribute("http://schemas.xmlsoap.org/soap/encoding/", "Array");
                Writer.WriteArrayTypeAttribute("Tagasimakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik", clazz.Tagasimaksed.Count);
                for (int x = 0; ((clazz.Tagasimaksed != null) 
                            && (x < clazz.Tagasimaksed.Count)); x = (x + 1)) {
                    if (clazz.Tagasimaksed[x]!=null) {
                        Writer.WriteStartElement("item");
                        global::Xtee.Core.SerializationMetadata metaTagasimaksed = this.GetMetaData(clazz.Tagasimaksed[x]);
                        Writer.WriteTypeAttribute(metaTagasimaksed.TypeQualifiedName.Namespace, metaTagasimaksed.TypeQualifiedName.Name);
                        metaTagasimaksed.NewSerializer(clazz.Tagasimaksed[x]).WriteXml(Writer);
                        Writer.WriteEndElement();
                    }
                }
                Writer.WriteEndElement();
            }
            if (clazz.MuuJuurdepaasupiirang!=null) {
                Writer.WriteStartElement("MuuJuurdepaasupiirang");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.MuuJuurdepaasupiirang))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MuuJuurdepaasupiiranguPohjendus!=null) {
                Writer.WriteStartElement("MuuJuurdepaasupiiranguPohjendus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.MuuJuurdepaasupiiranguPohjendus))).ToString());
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="Nimetus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Nimetus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Nimetus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Tegevusekohad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Tegevusekohad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadress>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Tegevusekohad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaTegevusekohad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadress>(Reader, "Aadress", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadress item = metaTegevusekohad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IAadress>();
                                clazz.Tegevusekohad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaTegevusekohad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Tegevusekohad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlaLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlaLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AlaLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("AlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Alustaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Alustaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Alustaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("StaatusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Alus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Alus = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Alus");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAlus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>(Reader, "SeaduseSate", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate item = metaAlus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISeaduseSate>();
                                clazz.Alus.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAlus.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Alus.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AluseTapsustusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AluseTapsustusKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AluseTapsustusKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>Toiming>AluseTapsustusKL>item");
                            }
                            clazz.AluseTapsustusKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AvalikustatudFail") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaAvalikustatudFail = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>(Reader, "Fail", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.AvalikustatudFail = metaAvalikustatudFail.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AvalikustatudFail");
                        metaAvalikustatudFail.NewSerializer(clazz.AvalikustatudFail).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Objektid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Objektid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Objektid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaObjektid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>(Reader, "Objekt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt item = metaObjektid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IObjekt>();
                                clazz.Objektid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaObjektid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Objektid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Faabula") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Faabula = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Faabula")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KoostamiseKoht") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KoostamiseKoht = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("KoostamiseKoht")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Korraldused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Korraldused = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Korraldused")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Lopetaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Lopetaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Lopetaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Markused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Markused = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Markused")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Menetlus") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaMenetlus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>(Reader, "Menetlus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.Menetlus = metaMenetlus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Menetlus");
                        metaMenetlus.NewSerializer(clazz.Menetlus).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ObjektID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Toiming>ObjektID");
                }
                clazz.ObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ObjektID")).Value;
            }
            if (Reader.LocalName=="SeisundKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SeisundKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SeisundKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LabiviimiseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LabiviimiseLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Toiminguosalised") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Toiminguosalised = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Toiminguosalised");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToiminguosalised = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>(Reader, "ToiminguOsaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline item = metaToiminguosalised.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>();
                                clazz.Toiminguosalised.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToiminguosalised.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Toiminguosalised.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguMenetlejad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguMenetlejad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ToiminguMenetlejad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToiminguMenetlejad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>(Reader, "ToiminguOsaline", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline item = metaToiminguMenetlejad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiminguOsaline>();
                                clazz.ToiminguMenetlejad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToiminguMenetlejad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ToiminguMenetlejad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VerAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VerAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VerAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VerLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VerLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("VerLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VersID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Toiming>VersID");
                }
                clazz.VersID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("VersID")).Value;
            }
            if (Reader.LocalName=="ObjektideLoetelu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ObjektideLoetelu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ObjektideLoetelu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Pohjendus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Pohjendus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Pohjendus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OlustikuKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OlustikuKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("OlustikuKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdasilykkamatusePohjendus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdasilykkamatusePohjendus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("EdasilykkamatusePohjendus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Failid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Failid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Failid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaFailid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>(Reader, "Fail", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail item = metaFailid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>();
                                clazz.Failid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaFailid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Failid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlusToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlusToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("AlusToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaAlusToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaAlusToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.AlusToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaAlusToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.AlusToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TeavitamiseKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TeavitamiseKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("TeavitamiseKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Lisad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Lisad = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Lisad")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TehnikavahenditeLoetelu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TehnikavahenditeLoetelu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("TehnikavahenditeLoetelu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Kulud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Kulud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKulu>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Kulud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaKulud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKulu>(Reader, "Kulu", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKulu item = metaKulud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKulu>();
                                clazz.Kulud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaKulud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Kulud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="UusMenetlevAsutus") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaUusMenetlevAsutus = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsik>(Reader, "JuriidilineIsik", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.UusMenetlevAsutus = metaUusMenetlevAsutus.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IJuriidilineIsik>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("UusMenetlevAsutus");
                        metaUusMenetlevAsutus.NewSerializer(clazz.UusMenetlevAsutus).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="YhendatavadEraldatavadAsjad") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.YhendatavadEraldatavadAsjad = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("YhendatavadEraldatavadAsjad");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaYhendatavadEraldatavadAsjad = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>(Reader, "Menetlus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus item = metaYhendatavadEraldatavadAsjad.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlus>();
                                clazz.YhendatavadEraldatavadAsjad.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaYhendatavadEraldatavadAsjad.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.YhendatavadEraldatavadAsjad.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MenetlusPost") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MenetlusPost = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPost>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MenetlusPost");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMenetlusPost = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPost>(Reader, "MenetlusPost", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPost item = metaMenetlusPost.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetlusPost>();
                                clazz.MenetlusPost.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMenetlusPost.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MenetlusPost.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Syyteosyndmused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Syyteosyndmused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Syyteosyndmused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSyyteosyndmused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>(Reader, "Syyteosyndmus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus item = metaSyyteosyndmused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ISyyteosyndmus>();
                                clazz.Syyteosyndmused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSyyteosyndmused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Syyteosyndmused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguosaliseKontaktid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguosaliseKontaktid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKontakt>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("ToiminguosaliseKontaktid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaToiminguosaliseKontaktid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKontakt>(Reader, "Kontakt", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKontakt item = metaToiminguosaliseKontaktid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IKontakt>();
                                clazz.ToiminguosaliseKontaktid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaToiminguosaliseKontaktid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.ToiminguosaliseKontaktid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("StaatusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeotudToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeotudToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SeotudToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSeotudToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaSeotudToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.SeotudToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSeotudToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SeotudToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Nouded") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Nouded = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Nouded");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaNouded = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>(Reader, "Noue", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue item = metaNouded.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.INoue>();
                                clazz.Nouded.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaNouded.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Nouded.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatuseMargeKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatuseMargeKL = new System.Collections.Generic.List<System.Int64?>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("StaatuseMargeKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if (Reader.IsElementNil()) {
                                throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>>Toiming>StaatuseMargeKL>item");
                            }
                            clazz.StaatuseMargeKL.Add(new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("item")).Value);
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SeisundidKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SeisundidKL = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SeisundidKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSeisundidKL = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>(Reader, "Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek item = metaSeisundidKL.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                                clazz.SeisundidKL.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSeisundidKL.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SeisundidKL.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="StaatusedKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.StaatusedKL = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("StaatusedKL");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaStaatusedKL = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>(Reader, "Olek", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek item = metaStaatusedKL.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IOlek>();
                                clazz.StaatusedKL.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaStaatusedKL.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.StaatusedKL.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AlaLiigiTapsustusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AlaLiigiTapsustusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AlaLiigiTapsustusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KorduvuseMargeKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KorduvuseMargeKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("KorduvuseMargeKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LabiviimiseVormKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LabiviimiseVormKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LabiviimiseVormKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="TahtaegKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.TahtaegKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("TahtaegKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="JarjekorraNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.JarjekorraNR = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("JarjekorraNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahenduseLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahenduseLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LahenduseLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseTaseKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseTaseKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SalastatuseTaseKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PohiFail") {
                if ((Reader.IsElementNil() == false)) {
                    global::Xtee.Core.SerializationMetadata metaPohiFail = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>(Reader, "Fail", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                    clazz.PohiFail = metaPohiFail.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IFail>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("PohiFail");
                        metaPohiFail.NewSerializer(clazz.PohiFail).ReadXml(Reader);
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SihtMenetluseNR") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SihtMenetluseNR = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("SihtMenetluseNR")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SihtMenetluseObjektID") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>Toiming>SihtMenetluseObjektID");
                }
                clazz.SihtMenetluseObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SihtMenetluseObjektID")).Value;
            }
            if (Reader.LocalName=="KoostamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KoostamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("KoostamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ViimaseSalvestamiseAeg") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ViimaseSalvestamiseAeg = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("ViimaseSalvestamiseAeg")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SisestamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SisestamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SisestamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisestaja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisestaja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisestaja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MuutmiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MuutmiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("MuutmiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Muutja") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Muutja = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Muutja")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SulgemiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SulgemiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SulgemiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguosalisedCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguosalisedCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguosalisedCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguMenetlejadCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguMenetlejadCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguMenetlejadCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="YhendatavadEraldatavadAsjadCSV") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.YhendatavadEraldatavadAsjadCSV = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("YhendatavadEraldatavadAsjadCSV")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KlientsysteemiID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KlientsysteemiID = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("KlientsysteemiID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToimingugaSeotudSumma") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToimingugaSeotudSumma = new global::Xtee.Core.Schema.XsdDecimal(Reader.ReadElementString("ToimingugaSeotudSumma")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToimingugaSeotudSummaValuutaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToimingugaSeotudSummaValuutaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ToimingugaSeotudSummaValuutaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PiirkondKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PiirkondKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("PiirkondKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="VoibMakstaPangalingiga") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.VoibMakstaPangalingiga = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("VoibMakstaPangalingiga")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Resolutsioon") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Resolutsioon = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Resolutsioon")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RiigiOigusabi") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RiigiOigusabi = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IRiigiOigusabi>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("RiigiOigusabi");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaRiigiOigusabi = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IRiigiOigusabi>(Reader, "RiigiOigusabi", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IRiigiOigusabi item = metaRiigiOigusabi.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IRiigiOigusabi>();
                                clazz.RiigiOigusabi.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaRiigiOigusabi.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.RiigiOigusabi.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RoaLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RoaLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("RoaLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="RiigioigusabiAndmiseViisKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.RiigioigusabiAndmiseViisKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("RiigioigusabiAndmiseViisKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ToiminguVastutavKontakt") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ToiminguVastutavKontakt = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ToiminguVastutavKontakt")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdastadaRaamatupidamisse") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdastadaRaamatupidamisse = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EdastadaRaamatupidamisse")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AsjaajamiseNumber") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AsjaajamiseNumber = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("AsjaajamiseNumber")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="DokumendiPostitamiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.DokumendiPostitamiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("DokumendiPostitamiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="DokumendiSaabumiseKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.DokumendiSaabumiseKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("DokumendiSaabumiseKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdastamiseViisKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdastamiseViisKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("EdastamiseViisKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="HagiTagamineEsialgneOiguskaitse") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.HagiTagamineEsialgneOiguskaitse = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("HagiTagamineEsialgneOiguskaitse")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="OigusabiMenetlusabiSaamine") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.OigusabiMenetlusabiSaamine = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("OigusabiMenetlusabiSaamine")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseAlusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseAlusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SalastatuseAlusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseAlusKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseAlusKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("SalastatuseAlusKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseAlgusKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseAlgusKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SalastatuseAlgusKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SalastatuseLoppKP") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SalastatuseLoppKP = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("SalastatuseLoppKP")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="AllikaksOlevKlientSysteemKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AllikaksOlevKlientSysteemKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("AllikaksOlevKlientSysteemKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LisaToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LisaToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("LisaToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaLisaToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaLisaToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.LisaToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaLisaToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.LisaToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PohiToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PohiToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("PohiToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaPohiToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaPohiToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.PohiToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaPohiToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.PohiToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Hoiatused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Hoiatused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Hoiatused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaHoiatused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>(Reader, "ETHoiatus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus item = metaHoiatused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IETHoiatus>();
                                clazz.Hoiatused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaHoiatused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Hoiatused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SisulisedLahendused") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SisulisedLahendused = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetluseSisulineLiigitus>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("SisulisedLahendused");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaSisulisedLahendused = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetluseSisulineLiigitus>(Reader, "MenetluseSisulineLiigitus", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetluseSisulineLiigitus item = metaSisulisedLahendused.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMenetluseSisulineLiigitus>();
                                clazz.SisulisedLahendused.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaSisulisedLahendused.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.SisulisedLahendused.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MakseRekvisiidid") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MakseRekvisiidid = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MakseRekvisiidid");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMakseRekvisiidid = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>(Reader, "MakseRekvisiidid", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid item = metaMakseRekvisiidid.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IMakseRekvisiidid>();
                                clazz.MakseRekvisiidid.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMakseRekvisiidid.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MakseRekvisiidid.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MojutatavaToiminguLahendusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MojutatavaToiminguLahendusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MojutatavaToiminguLahendusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MojutavaToiminguLahendusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MojutavaToiminguLahendusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MojutavaToiminguLahendusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MojutavadToimingud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MojutavadToimingud = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("MojutavadToimingud");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaMojutavadToimingud = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaMojutavadToimingud.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.MojutavadToimingud.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaMojutavadToimingud.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.MojutavadToimingud.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MarksonaStaatusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MarksonaStaatusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("MarksonaStaatusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sissejuhatus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sissejuhatus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sissejuhatus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SissenoutavusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SissenoutavusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SissenoutavusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="EdasiKaebusOigusestLoobutud") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.EdasiKaebusOigusestLoobutud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EdasiKaebusOigusestLoobutud")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KobaraTunnus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KobaraTunnus = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("KobaraTunnus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KobaraLiikmed") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KobaraLiikmed = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("KobaraLiikmed");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaKobaraLiikmed = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>(Reader, "Toiming", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming item = metaKobaraLiikmed.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.IToiming>();
                                clazz.KobaraLiikmed.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaKobaraLiikmed.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.KobaraLiikmed.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahendiKuulutamiseAeg") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahendiKuulutamiseAeg = new global::Xtee.Core.Schema.XsdDateTime(Reader.ReadElementString("LahendiKuulutamiseAeg")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Tagasimaksed") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Tagasimaksed = new System.Collections.Generic.List<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>();
                    if ((Reader.IsEmptyElement == false)) {
                        Reader.ReadStartElement("Tagasimaksed");
                        for (; ((Reader.NodeType != System.Xml.XmlNodeType.EndElement) 
                                    && (Reader.LocalName == "item")); ) {
                            if ((Reader.IsElementNil() == false)) {
                                global::Xtee.Core.SerializationMetadata metaTagasimaksed = this.GetMetaData<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>(Reader, "Tagasimakse", "http://producers.etoimik.xtee.riik.ee/producer/etoimik");
                                global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse item = metaTagasimaksed.NewEntity<global::Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik.ITagasimakse>();
                                clazz.Tagasimaksed.Add(item);
                                if ((Reader.IsEmptyElement == false)) {
                                    Reader.ReadStartElement("item");
                                    metaTagasimaksed.NewSerializer(item).ReadXml(Reader);
                                    Reader.ReadEndElement();
                                }
                                else {
                                    Reader.Skip();
                                }
                            }
                            else {
                                clazz.Tagasimaksed.Add(null);
                                Reader.Skip();
                            }
                        }
                        Reader.ReadEndElement();
                    }
                    else {
                        Reader.Skip();
                    }
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MuuJuurdepaasupiirang") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MuuJuurdepaasupiirang = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("MuuJuurdepaasupiirang")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="MuuJuurdepaasupiiranguPohjendus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.MuuJuurdepaasupiiranguPohjendus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("MuuJuurdepaasupiiranguPohjendus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
